监控 Kubernetes 集群的服务器和应用使用OneAgent定制探针版本
APO 分为两部分:
- APO-server: APO 服务侧组件
- APO-one-agent: APO 用户侧组件,用于采集Kubernetes集群或者虚机环境下被监控业务以及集群、主机信息。
本文档包含配置 APO-one-agent 自定义 Java 探针,并使用使用 Helm Chart 在 Kubernetes 上安装和运行定制版镜像 APO-one-agent 的说明。请确保在安装 APO-one-agent 之前,您已经安装 APO-server。
注意: 不建议用本文档的安装方式将 APO-server 与 APO-one-agnet 安装在同一 Kubernetes 集群中,会产生不必要的资源浪费;如果想要将 APO-server 与 APO-one-agent 部署在同一 Kubernetes 集群中,请参考快速开始文档
注意: 使用默认探针版本的 APO-one-agent ,可以根据监控 Kubernetes 集群中的服务器和应用使用OneAgent默认OTEL探针版本
APO-one-agent 内置各个编程语言的默认采集探针版本:
- Java agent: opentelemetry-java-instrumentation v2.8.0
- Python agent: opentelemetry-python 1.23.0/0.44b0
- NodeJs agent: opentelemetry-js v1.24.1/0.51.1
- Go agent: Grafana Beyla v1.8.4
注意: 目前只推荐使用 Skywalking 或者 OpenTelemetry 的 Java 探针;暂不支持除 Java 以外的语言的探针替换。
如何替换 APO-one-agent 中的 Java 探针
针对 Java 应用,APO-one-agent 默认集成了以下版本 Java 探针:
- Opentelemetry v2.5.0(默认)
本文档介绍如何在安装 APO-one-agent 时使用其他 Java 探针版本。
如果默认集成的探针版本不满足你的需求,参考下面的步骤构建自定义的 APO-one-agent 中的探针镜像;这样你可以使用比如 Skywalking v9.2.0 或 Opentelemetry v2.2.0 之类的其他版本探针。
1. 下载 OneAgent builder 模版
下载地址: https://apo-ce.oss-cn-hangzhou.aliyuncs.com/preload-builder.zip
模版的文件目录结构如下:
preload-builder
├── opentelemetry-java
│ ├── Dockerfile
│ ├── libapoinstrument.conf
│ └── opentelemetry
│ └── opentelemetry-javaagent.jar
└── skywalking-java
├── Dockerfile
├── libapoinstrument.conf
└── skywalking-agent
├── ...
└── skywalking-agent.jar
2. 替换探针文件
注意: 你只需要替换自己需要的探针,不需要同时替换OTEL和Skywalking的探针
OTEL探针
OTEL的JAVA探针以单个Jar包的方式提供。
使用需要的版本的OTEL探针替换模版目录中的 opentelemetry-java/opentelemetry/opentelemetry-javaagent.jar
文件, 注意不要更改文件名。
Skywalking探针
从Skywalking官网获得的探针文件通常是一个包含有 skywalking-agent.jar 和其配置文件的文件夹;
推荐的做法是移除模版中的 skywalking-java/skywalking-agent 目录, 随后用官网下载的探针文件进行替换;
这是因为不同版本的 skywalking-agent.jar 和 其他文件可能不兼容, 完整替换是最安全的。
注意替换后不要更改skywalking-java/skywalking-agent/skywalking-agent.jar
的文件名.